package com.linkai.mt_2021_10;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;

/**
 * @Description: 美团2021校招笔试-编程题(通用编程试题,第10场)
 *                淘汰分数
 *                思路：先对这些分数进行排序，找到中间值，然后在中间值附近进行调整
 * @Author: 林凯
 * @Date: 2021/10/9 15:56
 */
public class Main01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int x = sc.nextInt();
        int y = sc.nextInt();
        int score[] = new int[n];
        for (int i = 0; i < n; i++) {
            score[i] = sc.nextInt();
        }
        // 对分数进行排序
        Arrays.sort(score);
        int mid = -1;
        if (n % 2 != 0) {   // 奇数
            mid = (n + 1) / 2;
            int m = 0;
            // 晋级和淘汰的人数符合条件
            if (mid >= x && mid <= y && n - mid >= x && n - mid <= y) {
                // 由于要求最小值，所以mid--，往小方向继续进行探索
                while (mid >= x && mid <= y && n - mid >= x && n - mid <= y) {
                    // 注意数组下标
                    m = score[mid - 1];      // 保存此次可能的m值
                    mid--;
                }
            }else {
                System.out.println(-1);
                return;
            }
            System.out.println(m);
        } else {    //偶数
            mid = n / 2;
            int m = 0;
            if (mid >= x && mid <= y && n - mid >= x && n - mid <= y) {
                while (mid >= x && mid <= y && n - mid >= x && n - mid <= y) {
                    m = score[mid - 1];      // 保存此次可能的m值
                    mid--;
                }
            }else {
                System.out.println(-1);
                return;
            }
            System.out.println(m);
        }

    }
}
